// <!--通过axios库创建了一个包含拦截器和默认配置的axios实例,
// 并到处该实例供其他模块使用，从而实现统一处理请求和相应功能-->
import axios from 'axios';

//创建axios对象
const request =axios.create({
    baseURL:'http://localhost:8080',//后端url
    timeout:5000
})

// request拦截器，在请求发起前对请求做处理，比如统一加token,对请求参数统一加密
request.interceptors.request.use(
    config=>{
        config.headers['Content-Type']='application/json;charset=utf-8';
        return config;
    },
    error=>{
        return Promise.reject(error)
    }
);
// response拦截器:可以在接口响应后统一处理结果
request.interceptors.response.use(
    response=>{
        // response.data即为后端返回是Result
        let res=response.data
        if(typeof res==='string'){
            res=res?JSON.parse(res):res//判断目的是为了确保即使res是一个空字符串（''）在解析时也不会抛出错误
        }
        return res;
    },
    error=>{
        console.log('err'+error);
        return Promise.reject(error)
    }
)
export default request;